The global nature of the market place today has created an increased market for computer hardware and software that can be used on an international basis. Computer hardware and software vendors are thus required to modify existing products to accommodate a large number of foreign languages. While the demands upon hardware systems are minimal and are often solved by the provision of special keyboard characters, the large textual content of many software applications leads to a more difficult translation problem. The text that is embedded in and used by computer software must be translated to the desired foreign language (commonly referred to as localization).
In a typical data processing system, for example, the text used in the on-screen objects generated or created by the application program, such as window title bar text, menu text, button text and the like, must be translated. Any system messages generated or logged by the computer system during operation of the application program must also be translated. Additionally, the character sets and fonts used to display the text must also be changed to accommodate the target language into which the text is to be translated.
Existing methods of translating or localizing computer programs involve direct revisions of the software code. After the application text has been translated to the target language, the program is then recompiled and linked. The application program is then limited to that particular target language and is sold for use in that target language only. This procedure is inefficient, time consuming, expensive, and subject to errors.
The translation made in the source code of the application program is typically made by a person without sufficient training in programming. This can result in inadvertent changes being made to the syntax of the application program, causing fatal errors when trying to compile, link or run the resulting code with translated text. This process of embedding the translated text within the application program itself also results in the need to separately compile each foreign language version of the application program. The translated application program is then more difficult to evaluate by support personnel who are unfamiliar with the target language of the translated application program. Directly translating the text in the code of the application program also can result in an inconsistent and improper display of the text on the computer screen.
Accordingly, a need exists for a data processing system having multi-lingual capability such that the data processing system can run in one or more pre-defined target languages as well as the source language, thereby allowing localization of the system in a target language while at the same time facilitating service and support by the software vendor in the source language. A need also exists for a multi-lingual data processing system having software that can be developed and deployed in a source language and then translated in real time to any one of the predefined target languages as the software creates objects to be displayed. A need also exists for a system and method of translating software application text in a more efficient manner without having to directly modify the software source code and by importing any existing translation information and preventing unnecessary redundant translation.